package com.woniuxy.util;

import org.springframework.cglib.proxy.Enhancer;
import org.springframework.cglib.proxy.InvocationHandler;
import java.lang.reflect.Method;

//基于CgLib实现的工具类，由它帮忙创建代理类，扩展被代理类RbacManagerServiceCgLib
public class CgLibProxyInstance {
    public static Object getObject(Object obj){
//通过传入一个被代理类，通过Cglib来动态生成一个子类，扩展被代理类！
        return Enhancer.create(obj.getClass(), new InvocationHandler() {
            @Override
            public Object invoke(Object o, Method method, Object[] objects) throws Throwable {
                System.out.println("CgLib动态代理开启"+method.getName());
                Object invoke = method.invoke(obj, objects);
                System.out.println("CgLib动态代理执行完毕");
                return invoke;
            }
        });
    }
}
